// 初始化课程审核页面
function initCourseAudit() {
    // 状态筛选按钮切换
	const filterBtns = document.querySelectorAll('#s008 .filter-btn');
	filterBtns.forEach(btn => {
		btn.addEventListener('click', () => {
			filterBtns.forEach(b => b.classList.remove('active'));
			btn.classList.add('active');
			filterCourses(btn.textContent);
		});
	});

    // 初始化时默认选中"待审核"按钮
    const defaultBtn = Array.from(filterBtns).find(btn => btn.textContent.trim() === '待审核');
    if (defaultBtn) {
        defaultBtn.classList.add('active');
    }
    // 分页按钮切换
    const pageBtns = document.querySelectorAll('#s008 .page-btn');
    pageBtns.forEach(btn => {
        if (!btn.textContent.includes('<') && !btn.textContent.includes('>')) {
            btn.addEventListener('click', () => {
                pageBtns.forEach(b => b.classList.remove('active'));
                btn.classList.add('active');
                // 这里可以添加分页逻辑
                loadPage(parseInt(btn.textContent));
            });
        }
    });

    // 操作按钮事件
    document.querySelectorAll('#s008 .btn').forEach(btn => {
        btn.addEventListener('click', function() {
            const courseId = this.closest('tr').querySelector('td:nth-child(3)').textContent;
            
            if (this.classList.contains('btn-info')) {
                viewCourseDetails(courseId);
            } else if (this.classList.contains('btn-success')) {
                approveCourse(courseId);
            } else if (this.classList.contains('btn-danger')) {
                rejectCourse(courseId);
            }
        });
    });

    // 加载课程数据
    loadCourseData();
}

// 筛选课程
function filterCourses(status) {
    console.log('筛选状态:', status);
    
    // 根据不同状态设置不同的condition参数
    let condition;
    switch(status.trim()) {
        case '待审核':
            condition = 'fA';
            break;
        case '已通过':
            condition = 'tA';
            break;
        case '已驳回':
            condition = 'eA';
            break;
        case '全部':
        default:
            condition = 'AA'; // 默认显示待审核的内容
            break;
    }

    // 构建请求参数
    const params = new URLSearchParams({
        method: 'queryallreview',
        condition: condition
    });

    // 发送请求
    fetch(`${config.coursesip}`, {
        method: 'POST',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
			//Token
			'Authorization': 'Bearer ' + localStorage.getItem('token')
        },
        body: params.toString()
    })
    .then(response => {
        if (!response.ok) {
            throw new Error('网络响应失败');
        }
        return response.json();
    })
    .then(data => {
		const token = localStorage.getItem('token');
		console.log(token)
        console.log('筛选后返回的数据:', data);
        if (data && Array.isArray(data.data)) {
            // 重新渲染表格数据
            renderCourseData(data.data);
            // 更新总条数显示
            updateTotalCount(data.total || data.data.length);
        } else {
            console.error('无效的课程数据:', data);
            // 如果数据无效，清空表格
            renderCourseData([]);
            updateTotalCount(0);
        }
    })
    .catch(error => {
        console.error('筛选课程失败:', error);
        // 发生错误时，清空表格
        renderCourseData([]);
        updateTotalCount(0);
    });
}

// 加载指定页码的数据
function loadPage(pageNum) {
    console.log('加载页码:', pageNum);
    // TODO: 实现分页加载逻辑
}

// 查看课程详情
function viewCourseDetails(courseId) {
    console.log('开始获取课程详情，课程ID:', courseId);
    
    const modal = document.getElementById('courseDetailModal');
    if (!modal) {
        console.error('找不到弹出层元素');
        return;
    }
    modal.style.display = 'flex';
    
    // 构建请求参数
    const params = new URLSearchParams({
        method: 'queryone',
        id: courseId
    });
    
    // 输出请求详情
    console.log('请求URL:', config.coursesip);
    console.log('请求方法:', 'POST');
    console.log('请求参数:', {
        method: 'queryall',
        courseid: courseId
    });
    console.log('请求体:', params.toString());

    // 发送请求获取课程详情
    fetch(`${config.coursesip}`, {
        method: 'POST',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded'
        },
        body: params.toString()
    })
    .then(response => {
        console.log('收到服务器响应:', {
            status: response.status,
            statusText: response.statusText,
            headers: Object.fromEntries(response.headers.entries())
        });
        
        if (!response.ok) {
            throw new Error('网络响应失败');
        }
        return response.text().then(text => {
            console.log('服务器返回的原始数据:', text);
            try {
                return JSON.parse(text);
            } catch (e) {
                console.error('JSON解析失败:', text);
                throw new Error('返回数据格式错误');
            }
        });
    })
    .then(data => {
        console.log('解析后的课程详情数据:', data);
        if (data && data.code === 200) {
            console.log('课程详情数据有效，开始更新UI');
            updateDetailContent(data.data);
        } else {
            console.error('课程详情数据无效:', data);
            throw new Error(data.msg || '获取课程详情失败');
        }
    })
    .catch(error => {
        console.error('获取课程详情失败:', error);
        alert('获取课程详情失败：' + error.message);
        modal.style.display = 'none';
    });
}

// 新增函数：更新详情内容
function updateDetailContent(data) {
    try {
        document.getElementById('detail-course-name').textContent = data.cname || '未知课程';
        document.getElementById('detail-course-id').textContent = data.id || '';
        document.getElementById('detail-submit-time').textContent = data.creleasetime || '';
        document.getElementById('detail-teacher').textContent = data.tname || '';
        
        document.getElementById('detail-course-intro').textContent = data.cintroduce || '暂无课程简介';
        
        // 更新统计信息
        document.getElementById('detail-courseware-count').textContent = data.coursewareCount || 0;
        document.getElementById('detail-video-count').textContent = data.videoCount || 0;
        document.getElementById('detail-homework-count').textContent = data.homeworkCount || 0;
        
        // 更新资源完整度
        const completion = data.resourceCompletion || 0;
        document.getElementById('detail-resource-completion').textContent = `${completion}%`;
        document.getElementById('detail-resource-progress').style.width = `${completion}%`;
        
		let statusText;
		        switch(data.cstatus) {
		            case '0':
		                statusText = '未审核';
		                break;
		            case '1':
		                statusText = '已通过';
		                break;
		            case '2':
		                statusText = '已驳回';
		                break;
		            default:
		                statusText = '未知状态';
		        }
        // 更新审核状态
        document.getElementById('detail-audit-status').textContent = statusText;
	   document.getElementById('detail-auditor').textContent = data.auditor || '未分配';
	   document.getElementById('detail-audit-time').textContent = data.auditTime || '未开始';

	   console.log('详情更新完成，课程状态:', statusText);
    } catch (error) {
        console.error('更新详情内容失败:', error);
    }
}

// 关闭课程详情弹出层
function closeCourseDetail() {
    document.getElementById('courseDetailModal').style.display = 'none';
}

function rejectCourseFromDetail() {
    const courseId = document.getElementById('detail-course-id').textContent;
    const comment = '课程内容不符合平台规定，或违反法律';  // 你可以根据实际情况修改评论内容

    if (confirm('确定要驳回该课程吗？')) {
        rejectCourse(courseId);

        // 拼接 URL 和查询参数
		const url = `${config.coursesip}?method=doreview&status=2&id=${courseId}&comment=${encodeURIComponent(comment)}`;

        // 发送 fetch 请求
        fetch(url, {
            method: 'GET', // 或者 'POST'，取决于你的 API 要求
            credentials: 'same-origin', // 确保发送当前域下的 Cookies
            headers: {
                'Content-Type': 'application/x-www-form-urlencoded', // 根据实际需要，可以调整请求头
				'Authorization': 'Bearer ' + localStorage.getItem('token')
            }
        })
        .then(response => response.json())  // 假设返回的是 JSON 数据
        .then(data => {
            console.log('请求成功:', data);
            closeCourseDetail();  // 关闭课程详情
        })
        .catch(error => {
            console.error('请求失败:', error);
        });
    }
}

// 从详情页面通过课程
function approveCourseFromDetail() {
   const courseId = document.getElementById('detail-course-id').textContent;
   const comment = '课程内容符合平台规则,通过';  // 你可以根据实际情况修改评论内容
   
   if (confirm('确定审核通过该课程吗？')) {
       rejectCourse(courseId);
   
       // 拼接 URL 和查询参数
   	const url = `${config.coursesip}?method=doreview&status=1&id=${courseId}&comment=${encodeURIComponent(comment)}`;
   
       // 发送 fetch 请求
       fetch(url, {
           method: 'GET', // 或者 'POST'，取决于你的 API 要求
           credentials: 'same-origin', // 确保发送当前域下的 Cookies
           headers: {
               'Content-Type': 'application/x-www-form-urlencoded', // 根据实际需要，可以调整请求头
			   'Authorization': 'Bearer ' + localStorage.getItem('token')
           }
       })
       .then(response => response.json())  // 假设返回的是 JSON 数据
       .then(data => {
           console.log('请求成功:', data);
           closeCourseDetail();  // 关闭课程详情
       })
       .catch(error => {
           console.error('请求失败:', error);
       });
   }
}

// 通过课程审核
function approveCourse(courseId) {
    console.log('通过课程:', courseId);
    // TODO: 实现审核通过逻辑
}

// 驳回课程
function rejectCourse(courseId) {
    console.log('驳回课程:', courseId);
    // TODO: 实现驳回逻辑
}

// 渲染课程数据
function renderCourseData(data) {
    const tbody = document.getElementById('audit-course-list');
    tbody.innerHTML = ''; // 清空表格内容

    // 只插入一次 tfoot
    let tfoot = document.querySelector('tfoot');
    if (!tfoot) {
        tfoot = document.createElement('tfoot');
        const footerRow = document.createElement('tr');
        const footerCell = document.createElement('td');
        footerCell.colSpan = 8; // 合并所有列
        footerCell.style.textAlign = 'right'; // 右对齐

        // 为批量删除按钮设置初始隐藏
        footerCell.innerHTML = `
            <button class="btn btn-danger batch-delete" style="display: none;">
                <i class="fas fa-trash"></i> 批量删除
            </button>
        `;
        footerRow.appendChild(footerCell);
        tfoot.appendChild(footerRow);
        tbody.parentElement.appendChild(tfoot);
    }

    // 获取表头复选框
    const selectAllCheckbox = document.getElementById('selectAllAudit');
    if (selectAllCheckbox) {
        selectAllCheckbox.addEventListener('change', function() {
            const isChecked = this.checked;
            const checkboxes = document.querySelectorAll('.audit-checkbox');
            checkboxes.forEach(checkbox => {
                checkbox.checked = isChecked;
            });
            updateBatchDeleteButton(); // 更新批量删除按钮状态
        });
    }

    // 渲染课程数据
    data.forEach((course, index) => {
        const row = document.createElement('tr');
        row.innerHTML = `
            <td>
                <input type="checkbox" class="audit-checkbox" data-course-id="${course.id}">
            </td>
            <td>${index + 1}</td>
            <td>${course.id}</td>
            <td>${course.cname}</td>
            <td>${course.tname}</td>
            <td>${course.creleasetime}</td>
            <td>${course.cstatus}</td>
            <td>
                <button class="btn btn-info" onclick="viewCourseDetails('${course.id}')">
                    查看详情
                </button>
            </td>
        `;
        
        const checkbox = row.querySelector('.audit-checkbox');
        checkbox.addEventListener('change', () => {
            updateBatchDeleteButton(); // 每次复选框状态改变时更新删除按钮状态
            updateSelectAllStatus(); // 更新全选框状态
        });
        
        tbody.appendChild(row);
    });

    // 添加批量删除按钮的点击事件
    const batchDeleteBtn = document.querySelector('.batch-delete');
    if (batchDeleteBtn) {
        batchDeleteBtn.addEventListener('click', batchDeleteCourses);
    }

    // 确保批量删除按钮的显示和隐藏
    updateBatchDeleteButton();
}

// 更新批量删除按钮的显示状态
function updateBatchDeleteButton() {
    const checkboxes = document.querySelectorAll('.audit-checkbox');
    const checkedBoxes = Array.from(checkboxes).filter(cb => cb.checked);
    const batchDeleteBtn = document.querySelector('.batch-delete');
    
    if (batchDeleteBtn) {
        batchDeleteBtn.style.display = checkedBoxes.length > 0 ? 'inline-block' : 'none'; // 如果有选中的复选框，显示删除按钮
    }
}

// 更新全选框状态
function updateSelectAllStatus() {
    const checkboxes = document.querySelectorAll('.audit-checkbox');
    const selectAllCheckbox = document.getElementById('selectAllAudit');
    
    if (selectAllCheckbox) {
        const allChecked = Array.from(checkboxes).every(cb => cb.checked);
        const someChecked = Array.from(checkboxes).some(cb => cb.checked);
        
        selectAllCheckbox.checked = allChecked;
        selectAllCheckbox.indeterminate = someChecked && !allChecked;
    }
}


// 批量删除课程
function batchDeleteCourses() {
    const checkedBoxes = document.querySelectorAll('.audit-checkbox:checked');
    const courseIds = Array.from(checkedBoxes).map(cb => cb.getAttribute('data-course-id'));

    if (courseIds.length === 0) {
        alert('请选择要删除的课程');
        return;
    }

    if (confirm(`确定要删除选中的 ${courseIds.length} 个课程吗？`)) {
        // 发送删除请求
        const url = config.coursesip;

        fetch(url, {
            method: 'POST',
            credentials: 'include',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify({
                method: 'deletecourses',
                id: courseIds
            })
        })
        .then(response => response.json())
        .then(data => {
            if (data.code === 200) {
                alert('删除成功');
                // 重新加载课程列表
                fetchAuditCourses();
            } else {
                alert('删除失败：' + data.msg);
            }
        })
        .catch(error => {
            console.error('删除失败:', error);
            alert('删除失败，请稍后重试');
        });
    }
}
// 更新总条数显示
function updateTotalCount(total) {
    const totalCountSpan = document.querySelector('#s008 .total-count span');
    if (totalCountSpan) {
        totalCountSpan.textContent = total;
    }
}

// 加载需要审核的课程数据
function loadCourseData() {
    // 请求参数
    const params = new URLSearchParams({
        method: 'queryall',
        condition: 'fA'
    });

    // 发送请求
    fetch(`${config.coursesip}`, {
        method: 'POST',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded'
        },
        body: params.toString()
    })
    .then(response => {
        if (!response.ok) {
            throw new Error('网络响应失败');
        }
        return response.json();
    })
    .then(data => {
        console.log('服务器返回的课程审核的数据:', data);
        if (data && Array.isArray(data.data)) {
            renderCourseData(data.data);
            // 更新总条数显示
            updateTotalCount(data.total || data.data.length);
        } else {
            console.error('无效的课程数据:', data);
        }
    })
    .catch(error => {
        console.error('获取课程数据失败:', error);
    });
}

// 更新全选框状态的函数
function updateSelectAllStatus() {
    const selectAllCheckbox = document.getElementById('selectAllAudit');
    const checkboxes = document.querySelectorAll('.audit-checkbox');
    const totalCheckboxes = checkboxes.length;
    const checkedCount = Array.from(checkboxes).filter(cb => cb.checked).length;
    
    if (checkedCount === 0) {
        // 没有选中任何复选框
        selectAllCheckbox.checked = false;
        selectAllCheckbox.indeterminate = false;
    } else if (checkedCount === totalCheckboxes) {
        // 所有复选框都被选中
        selectAllCheckbox.checked = true;
        selectAllCheckbox.indeterminate = false;
    } else {
        // 部分复选框被选中
        selectAllCheckbox.checked = false;
        selectAllCheckbox.indeterminate = true;
    }
}

// 在页面加载完成后初始化
document.addEventListener('DOMContentLoaded', function() {
    window.addEventListener('contentSwitch', function(event) {
        if (event.detail.id === 's008') {
            initCourseAudit();
        }
    });
});